package com.xd.core.business.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.xd.core.business.dto.RepaymentScheduleAppDto;
import com.xd.core.business.dto.RepaymentScheduleDto;
import com.xd.core.business.entity.RepaymentSchedule;
import com.xd.core.business.vo.*;
import com.xd.core.company.dto.HomeQueryDto;
import com.xd.core.company.vo.DelayCounts;
import com.xd.core.finance.dto.KeepBookingDto;

import java.util.List;

/**
 * <p>
 * 还款计划表 服务类
 * </p>
 *
 * @author ZX
 * @since 2025-02-28
 */
public interface IRepaymentScheduleService extends IService<RepaymentSchedule> {

    DelayCounts getDelayCounts(HomeQueryDto query);

    RepaymentInfoVo getList(RepaymentScheduleDto repaymentScheduleDto);

    void updateBook(KeepBookingDto keepBookingDto);

    RepayDetailVo getRepayDetail(RepaymentScheduleDto repaymentScheduleDto);

    List<RepaymentScheduleList> getRepaymentScheduleList(Integer debtId);

    RepaymentScheduleAppVo getOutRepaymentPlan(RepaymentScheduleAppDto repaymentScheduleAppDto);

    /***
     * @description 退保后剩余应还本金和利息
     * @author Zch
     * @date 11:20 2025/9/11 星期四
     * @return com.xd.core.business.vo.RemainAmountVo
     **/
    RemainAmountVo getRemainAmount(RepaymentScheduleDto repaymentScheduleDto);
}
